spring 类扫描

spring 类扫描

1、启动spring容器,spring容器会解析到以下配置

1
<context:component-scan base-package="..."></context:component-scan>

2、spring容器会在base-package包及子包中扫描所有的类

3、检查这些类中是否含有@Component注解

如果含有,则进行解析,
形式1:

1
2
3
4
@Component
public class Person{

}

这种形式的将会解析成:

1
<bean id="person" class="...">

形式2:

1
2
3
4
@Component("aa")
public class Person{

}

这种形式的将会解析成:

1
<bean id="aa" class="...">

4、会查找spring容器中的bean,看哪些bean中有@Resource注解,并且按照该注解的规则给属性赋值

5、优缺点

这样的写法很简单,但是效率比较低
扫描两次

  • 扫描base-package以及子包所有的类,看哪些类上面加了注解(Component/Service等)
  • 扫描哪些类上加了Rescource/Autowired注解